package com.yunkeji.system.domain.bo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yunkeji.common.core.domain.BaseEntity;
import com.yunkeji.common.core.validate.AddGroup;
import com.yunkeji.common.core.validate.EditGroup;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

import javax.validation.constraints.NotNull;

/**
 * 支付-提现业务对象 ykj_pay_withdraw
 *
 * @author zhang
 * @date 2024-07-10
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ToString
public class PayWithdrawBo extends BaseEntity {

    /** 提现状态 0=审核中 1=提现拒绝 2= 审核通过 */
    @NotNull(
            message = "提现状态  0=审核中 1=提现拒绝 2= 审核通过 不能为空",
            groups = {AddGroup.class, EditGroup.class})
    private Integer status;

    /** 提现日期(yyyyMMdd) */
    @NotNull(
            message = "提现日期(yyyyMMdd)不能为空",
            groups = {AddGroup.class, EditGroup.class})
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date withdrawDateBefore;

    /** 提现日期(yyyyMMdd) */
    @NotNull(
            message = "提现日期(yyyyMMdd)不能为空",
            groups = {AddGroup.class, EditGroup.class})
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date withdrawDateAfter;

    /** 支付方式 */
    @NotNull(
            message = "支付方式不能为空",
            groups = {AddGroup.class, EditGroup.class})
    private Integer payType;

    /** 审核日期 */
    @NotNull(
            message = "审核日期不能为空",
            groups = {AddGroup.class, EditGroup.class})
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date checkDateBefore;

    /** 审核日期 */
    @NotNull(
            message = "审核日期不能为空",
            groups = {AddGroup.class, EditGroup.class})
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date checkDateAfter;

    /** 提现手机号 */
    private String phone;

    /** 爱洞id */
    private Long platformId;

    /** 付款状态 */
    private Integer payStatus;
}
